# Lines starting with '#' are comments.

# Currently, FASTA and FASTQ file formats are supported.
#fasta_read_filename = data/medium.fasta
fastq_read_filename = data/SRR001665_1.fastq
fastq_read_filename = data/SRR001665_2.fastq

# the unit of kmer_size is nucleotide
kmer_size   = 27

# how many short reads will be loaded as a batch
seq_buffer_size     = 25000

# what is the longest read in terms of the number of nucleotides?
max_sequence_length = 256

# how many hashmaps compose a kmer coverage table
num_hashmaps        = 16384

# how many hardware threads are spawned
num_threads         = 16

# after building the kmer coverage table, kmers that have the
# coverage smaller than or equal to 
# 'max_count_treated_as_sequencer_error' are discarded.
max_count_treated_as_sequencer_error = 1

# after building the kmer coverage table, kmers that have the
# coverage larger than or equal to 
# 'min_count_thread_as_repeat' are discarded.
min_count_treated_as_repeat          = 10000

# minimal length of the contigs that will be displayed in the
# output file
min_valid_contig_length              = 100

# an output file that contains contig and debug information
output_contig_filename = /dev/null

# an output file that contains contigs in a FASTA format
output_fasta_filename  = contigs.fasta

# whether display the kmer coverage histogram
#create_histogram                                  = true
# whether display the contig size histogram
#create_contig_size_histogram                      = true

# whether parallelize each of following phases
parallelize_read_processing       = true
parallelize_kmer_node_population  = true
parallelize_kmer_linking          = true
parallelize_contig_initialization = true

# whether we generate the output FASTA file or not.
display_fasta = true


# ccTSA is coverage centric, so that kmer coverage is
# used to resolve conflicts between kmer nodes that are
# connected by an edge.  

# if true, display confusing kmer node pairs.
#display_confusing_kmers             = true

# only the kmer nodes that have the kmer coverage value
# larger than or equal to 'minimal_hitcount_for_confusing_kmer'
# are considered as confusing kmers.
#minimal_hitcount_for_confusing_kmer = 30

# among the edges in the same side of a junction node,
# if none of the edges have the weight value that is
# more than or equal to the product of 
# 'dominant_node_threshold' and the sum of all the 
# edges, the kmer node is regarded as a confusing kmer
# node.
#dominant_node_threshold             = 0.6

# if true, disconnect all the edges in the same side
# of a kmer node that causes the confusion.
#disconnect_confusing_kmers          = true


# following options are only for debugging 
#display_nodes_after_initializing_contigs          = true
#display_nodes_after_finding_likely_neighbors      = true
#display_nodes_after_resolving_conflicts_in_graphs = true
#display_repeats         = true
#exit_after_kmer_buildup = true
#tight_memory_management = true
#alternative_read_processing = true

# following options are only for advanced users
block_allocator_size = 33554432

#per_file_error_removal   = true
# when 'per_size_error_removal' is true, 'error_removal_block_size'
# is the number of reads that are processed before a temporary kmer
# coverage table that contains kmers whose coverage values are not
# higher than max_count_treated_as_sequencer_error becomes reset.
#per_size_error_removal   = true
#error_removal_block_size = 2500000
